Situación Problema

Objetivo

A partir del archivo de datos “covid19_confirmados.csv” desarrollar análisis exploratorio espacial de datos que describa las principales características de las variables de interés seleccionadas (por ejemplo, estadísticos descriptivos y estadísticos de dispersión) e identifique la estructura espacial de los datos a través la elaboración de mapas que muestren la presencia de autocorrelación espacial.

ESDA

ESDA son las siglas en inglés de Análisis Espacial Exploratorio de Datos (Exploratory Spatial Data Analysis, en inglés). Es una técnica de análisis de datos que se utiliza para explorar y analizar la estructura espacial de los datos, es decir, cómo se distribuyen los datos en el espacio.

El propósito principal del ESDA es ayudar a identificar patrones espaciales y tendencias en los datos, lo que puede ser útil para entender mejor las relaciones espaciales entre las variables y para tomar decisiones informadas basadas en la ubicación geográfica.

Autocorrelación Espacial

La autocorrelación espacial se refiere a la medida de similitud entre los valores de una variable geográfica en diferentes ubicaciones espaciales. Es decir, se refiere a la tendencia de los valores de una variable para ser similares en lugares cercanos unos a otros en el espacio.

Un ejemplo de autocorrelación espacial positiva podría ser la distribución de la riqueza en una ciudad, donde las áreas adyacentes tienden a tener valores similares de ingresos y estatus socioeconómico. Por otro lado, un ejemplo de autocorrelación espacial negativa podría ser la distribución de la contaminación atmosférica en una ciudad, donde las áreas cercanas a las fuentes de emisión tienen valores de contaminación más altos que las áreas lejanas.

Analisis Servicios de Salud

Limpieza

Para empezar con el análisis, primero hay que realizar una limpieza, cargando las bases de datos (“denue” y “covid19 confirmados”) y el shp file.

# carga de bases de datos
denue <- read_xlsx("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/denue_hospitales.xlsx") # Directorio Estadístico Nacional de Unidades Económicas
datos_covid <- read_xlsx("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/covid19_confirmados.xlsx") # datos covid
shp <- sf::read_sf("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/mx_mpios.shp") # shp file 

Después, creamos la clave para la unión de ambas bases de datos.

# creando la clave para la unión de las bases de datos
denue2 <- denue %>% mutate(cve_ent =(cve_ent*1000)+cve_mun) %>% group_by(cve_ent,entidad) %>% count()
covid_hospital <- merge(datos_covid,denue2,by="cve_ent",all=TRUE)

Una vez unidas nuestras bases de datos, con la información de todos los meses del año 2021, tenemos la suma de covid anual (2021) y se dividió en cuartos de años, teniendo como resultado Covid Q1 2021, Covid Q2 2021, Covid Q3 2021 y Covid Q4 2021. También, se creó la columna región para separar la base por regiones correspondientes al análisis.

# creacion de variables
# covid 2021
covid_hospital %<>% mutate(Covid_2021 = jan_2021+feb_2021+mar_2021...32+april_2021+may_2021+
           june_2021+july_2021+august_2021+ sept_2021+oct_2021+nov_2021+dic_2021,
           Covid_Q1_2021 =jan_2021+feb_2021+mar_2021...32,
           Covid_Q2_2021 = april_2021+may_2021+ june_2021,
           Covid_Q3_2021 =july_2021+august_2021+ sept_2021,
           Covid_Q4_2021= oct_2021+nov_2021+dic_2021)
# division x zonas
Centro <- c("Ciudad de Mexico", "Mexico", "Guanajuato", "Hidalgo", "Morelos", "Puebla", "Queretaro","Tlaxcala")
Centro_Norte <- c("Aguascalientes", "Baja California Sur", "Colima", "Durango", "Jalisco", "Michoacan","Michoacan de Ocampo", "Nayarit", "San Luis Potosi", "Sinaloa", "Zacatecas")
Sur <-  c("Campeche","Chiapas","Guerrero","Oaxaca","Quintana Roo","Tabasco","Veracruz","Yucatan")
Norte <- c("Baja California", "Chihuahua", "Coahuila", "Nuevo Leon", "Sonora", "Tamaulipas" )

covid_hospital <- covid_hospital %>% mutate(Region= as.factor(ifelse(entidad%in%Centro,"Centro",ifelse(entidad%in%Centro_Norte,"Centro Norte",ifelse(entidad%in%Sur,"Sur",ifelse(entidad%in%Norte,"Norte","Otro")))))) %>% dplyr::select(Region, everything())
# Se continuó con la transformación de las variables a su tipo de dato correcto
num <- c("porcentaje_pob_pobreza","porcentaje_pob_servicios_salud","porcentaje_pob_acceso_ss")
covid_hospital[num] <- lapply(covid_hospital[num], as.double)
covid_hospital[num] <- lapply(covid_hospital[num]/100, as.double)
str(covid_hospital)
## 'data.frame':    2468 obs. of  50 variables:
##  $ Region                        : Factor w/ 5 levels "Centro","Centro Norte",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ cve_ent                       : num  1001 1002 1003 1004 1005 ...
##  $ mpio                          : chr  "Aguascalientes" "Asientos" "Calvillo" "Cosio" ...
##  $ poblacion_2022                : num  961977 50864 60760 16918 130184 ...
##  $ hogrem2015                    : num  4.82 12.87 25.85 14.29 5.72 ...
##  $ hogremjefmuj2015              : num  27.8 22.1 25.6 21.2 19.9 ...
##  $ popnoafmed2015                : num  14.34 5.77 9.97 5.28 14.02 ...
##  $ gini2015                      : num  0.392 0.37 0.375 0.37 0.402 0.389 0.396 0.418 0.371 0.37 ...
##  $ popden2020                    : num  812 94.1 62.5 131.9 260.3 ...
##  $ crimen_2018                   : num  7.36 7.81 8.4 17.86 5.14 ...
##  $ crimen_2019                   : num  8.15 5.78 8.31 0 10.98 ...
##  $ inclusion_fin_2019            : num  1.78 0 1.16 0 0.36 1.2 1.03 0 0 0 ...
##  $ porcentaje_pob_pobreza        : num  0.237 0.401 0.458 0.37 0.263 ...
##  $ porcentaje_pob_pobreza_ext    : num  1.97 4.14 4.5 3.38 3.29 2.88 5.56 2.32 3.15 4.81 ...
##  $ porcentaje_pob_servicios_salud: num  0.2 0.165 0.21 0.176 0.211 ...
##  $ porcentaje_pob_acceso_ss      : num  0.378 0.621 0.762 0.475 0.419 ...
##  $ pob_6-14_no_edu               : num  4.6 6.29 6.95 5.7 5.88 4.44 4.38 5.74 5.37 4.4 ...
##  $ rezago_social                 : num  -1.32 -0.86 -0.92 -1 -1.17 -1.17 -1.07 -0.96 -0.9 -0.83 ...
##  $ grado_rs                      : chr  "Muy bajo" "Muy bajo" "Muy bajo" "Muy bajo" ...
##  $ feb_2020                      : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ march_2020                    : num  45 1 0 0 1 5 1 0 1 0 ...
##  $ april_2020                    : num  213 1 9 0 12 6 10 4 1 1 ...
##  $ may_2020                      : num  520 7 2 17 21 26 40 1 24 3 ...
##  $ june_2020                     : num  1168 21 25 25 42 ...
##  $ july_2020                     : num  1271 42 89 25 65 ...
##  $ august_2020                   : num  1385 17 18 17 71 ...
##  $ sept_2020                     : num  1364 13 41 2 65 ...
##  $ oct_2020                      : num  2388 46 64 6 93 ...
##  $ nov_2020                      : num  3965 94 185 13 104 ...
##  $ dic_2020                      : num  2370 73 116 2 73 87 16 14 18 11 ...
##  $ jan_2021                      : num  3271 64 186 9 78 ...
##  $ feb_2021                      : num  1498 42 151 7 73 ...
##  $ mar_2021...32                 : num  1310 21 73 0 38 34 10 4 8 5 ...
##  $ mar_2021...33                 : num  1310 21 73 0 38 34 10 4 8 5 ...
##  $ april_2021                    : num  826 14 19 2 27 15 11 5 2 6 ...
##  $ may_2021                      : num  401 6 3 1 14 3 13 0 0 3 ...
##  $ june_2021                     : num  221 2 0 4 8 3 3 1 1 0 ...
##  $ july_2021                     : num  1140 6 37 1 35 10 11 2 1 2 ...
##  $ august_2021                   : num  2944 49 82 4 116 ...
##  $ sept_2021                     : num  2121 23 22 1 95 ...
##  $ oct_2021                      : num  1560 33 57 4 78 39 66 5 12 22 ...
##  $ nov_2021                      : num  1126 16 32 4 45 ...
##  $ dic_2021                      : num  2067 14 68 4 95 ...
##  $ entidad                       : chr  "Aguascalientes" "Aguascalientes" "Aguascalientes" "Aguascalientes" ...
##  $ n                             : int  2708 38 109 14 146 91 84 9 22 13 ...
##  $ Covid_2021                    : num  18485 290 730 41 702 ...
##  $ Covid_Q1_2021                 : num  6079 127 410 16 189 ...
##  $ Covid_Q2_2021                 : num  1448 22 22 7 49 ...
##  $ Covid_Q3_2021                 : num  6205 78 141 6 246 ...
##  $ Covid_Q4_2021                 : num  4753 63 157 12 218 ...
covid_hospital$mpio <- as.factor(covid_hospital$mpio)
covid_hospital$grado_rs <- as.factor(covid_hospital$grado_rs)
covid_hospital$entidad <- as.factor(covid_hospital$entidad)

Variables de interes

  • variables (General)
    • poblacion_2022: número de habitantes por municipio
    • hogrem2015: porcentaje de hogares que recibieron remesas durante el año 2015
    • hogremjefmuj2015: porcentaje de hogares con jefas de familia que recibieron remesas durante el año 2015
    • popnoafmed2015: porcentaje de la población que no tiene acceso a servicios médicos durante el año 2015
    • gini2015: coeficiente de desigualdad del ingreso
    • popden2020: densidad de población por km2
    • crimen_2018: tasa de crimen por cada 100,000 habitantes durante el año 2018
    • crimen_2019: tasa de crimen por cada 100,000 habitantes durante el año 2019
    • inclusion_fin_2019: porcentaje de la población que tiene acceso a servicios de banca comercialdurante el año de 2019
    • porcentaje_pob_pobreza: porcentaje de la población en situación de pobreza durante el año 2020
    • porcentaje_pob_pobreza_ext: porcentaje de la población en situación de pobreza extrema durante el año 2020
    • porcentaje_pob_servicios_salud: porcentaje de la población que carece a servicios de salud durante el año 2020
    • porcentaje_pob_acceso_ss: porcentaje de la población que carece a servicios de seguridad social durante el año 2020
    • pob_6-14_no_edu: porcentaje de la población entre 6 – 14 años de edad que carece de acceso a educacción
    • rezago_social: indicador de rezago social
    • grado_rs: categorías del indicador de rezago social
    • march_2020 - dic_2020: número de casos de COVID19 confirmados
    • jan_2021 - dic_2021: número de casos de COVID19 confirmados
    Una vez con las variables limpias, seleccionamos las variables de interés para nuestro análisis exploratorio y eliminamos las variables que no serán relevantes para el análisis.
# variables que no me sirven
#n= número total de hospitales

covid_hospital %<>% dplyr::select(-hogrem2015, -hogremjefmuj2015, -popnoafmed2015, -gini2015, -crimen_2018, -crimen_2019,  -feb_2020, -march_2020, -april_2020, -may_2020, -june_2020, -july_2020, -august_2020, -sept_2020, -oct_2020, -nov_2020, -dic_2020, -jan_2021, -feb_2021, -mar_2021...32, -mar_2021...33, -april_2021, -may_2021, -june_2021, -july_2021, -august_2021, -sept_2021, -oct_2021, -nov_2021, -dic_2021)
# renombramos la columna n
#n= número total de hospitales
covid_hospital <- rename(covid_hospital, num_hospitales = n)
  • Base de datos final
    • Region: Norte, Centro, Centro Norte y Sur
    • cve_ent: clave de la entidad
    • mpio: nombres de los municipios
    • poblacion_2022: número de habitantes por municipio en el año 2022
    • popden2020: densidad de población por km2 en 2020
    • inclusion_fin_2019: porcentaje de la población que tiene acceso a servicios de banca comercialdurante el año de 2019
    • porcentaje_pob_pobreza: porcentaje de la población en situación de pobreza durante el año 2020
    • porcentaje_pob_pobreza_ext: porcentaje de la población en situación de pobreza extrema durante el año 2020
    • porcentaje_pob_servicios_salud: porcentaje de la población que carece a servicios de salud durante el año 2020
    • porcentaje_pob_acceso_ss: porcentaje de la población que carece a servicios de seguridad social durante el año 2020
    • pob_6-14_no_edu: porcentaje de la población entre 6 – 14 años de edad que carece de acceso a educacción
    • rezago_social: indicador de rezago social
    • grado_rs: categorías del indicador de rezago social
    • entidad: nombres de los estados de la república mexicana
    • num_hospitales: número total de hospitales
    • Covid_2021: casos confirmados de covid en 2021
    • Covid_Q1_2021: comportamiento de casos confirmados de covid 2021 en el primer cuarto de año
    • Covid_Q2_2021: comportamiento de casos confirmados de covid 2021 en el segundo cuarto de año
    • Covid_Q3_2021: comportamiento de casos confirmados de covid 2021 en el tercer cuarto de año
    • Covid_Q4_2021: comportamiento de casos confirmados de covid 2021 en el cuarto cuarto de año
  • Variables de interés
    • poblacion_2022: número de habitantes por municipio en el año 2022
    • popden2020: densidad de población por km2 en 2020
    • inclusion_fin_2019: porcentaje de la población que tiene acceso a servicios de banca comercialdurante el año de 2019
    • porcentaje_pob_pobreza: porcentaje de la población en situación de pobreza durante el año 2020
    • porcentaje_pob_pobreza_ext: porcentaje de la población en situación de pobreza extrema durante el año 2020
    • porcentaje_pob_servicios_salud: porcentaje de la población que carece a servicios de salud durante el año 2020
    • porcentaje_pob_acceso_ss: porcentaje de la población que carece a servicios de seguridad social durante el año 2020
    • grado_rs: categorías del indicador de rezago social
    • Covid_2021 y Cuartos de año: casos confirmados de covid en 2021

Análisis ESDA

Descriptivo

Una vez limpia la base de datos, filtramos para crear una base adicional con únicamente los datos de region norte.

hNorte <- covid_hospital %>%
  filter(entidad %in% c("Baja California", "Chihuahua", "Coahuila", "Nuevo Leon", "Sonora", "Tamaulipas"))
hNorteU <- unique(hNorte$entidad)

Ahora, chequamos la cantidad de NA’s que existen en la base de datos y vemos que hay un total de 16 NA’s.

# na's
sum(is.na(hNorte)) # hay un total de 16 NA's
## [1] 16
# encontrar los índices de fila y columna que contienen NA's en el dataframe hNorte
filas_na <- which(apply(hNorte, 1, function(x) any(is.na(x))))
columnas_na <- which(apply(hNorte, 2, function(x) any(is.na(x))))

# imprimir los índices de fila y columna
cat("Las filas con NA's son:", filas_na, "\n") # Las filas con NA's son: 6 
## Las filas con NA's son: 6
cat("Las columnas con NA's son:", columnas_na, "\n") # Las columnas con NA's son: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20
## Las columnas con NA's son: 3 4 5 6 7 8 9 10 11 12 13 16 17 18 19 20
colnames(hNorte)
##  [1] "Region"                         "cve_ent"                       
##  [3] "mpio"                           "poblacion_2022"                
##  [5] "popden2020"                     "inclusion_fin_2019"            
##  [7] "porcentaje_pob_pobreza"         "porcentaje_pob_pobreza_ext"    
##  [9] "porcentaje_pob_servicios_salud" "porcentaje_pob_acceso_ss"      
## [11] "pob_6-14_no_edu"                "rezago_social"                 
## [13] "grado_rs"                       "entidad"                       
## [15] "num_hospitales"                 "Covid_2021"                    
## [17] "Covid_Q1_2021"                  "Covid_Q2_2021"                 
## [19] "Covid_Q3_2021"                  "Covid_Q4_2021"
# las columnas con NA's son: mpio, poblacion_2022, popden2020, inclusion_fin_2019, porcentaje_pob_pobreza, porcentaje_pob_pobreza_ext, porcentaje_pob_servicios_salud, porcentaje_pob_acceso_ss, pob_6-14_no_edu, rezago_social, grado_rs, Covid_2021, Covid_Q1_2021, Covid_Q2_2021, Covid_Q3_2021 y Covid_Q4_2021 

Matriz de correlación

Uno de nuestros propósitos es poder identificar cuales son las variables que tiene una correlación significativa con la variable de interés (Covid). Aquí vemos que las variables de Población, Centro Médicos, Inclusión Financiera y Densidad tienen una correlación positiva con respecto a la variable de Covid. Por otro lado vemos que las variables de Rezago Social, Pobreza y Acceso a servicios de salud tienen una correlación negativa con respecto a la variable de Covid.

# CORRELATION PLOT GENERAL 
cor <- covid_hospital[,unlist(lapply(covid_hospital, is.numeric))]
cor <- model.matrix(~0+., data=cor) 
cor <- round(cor(cor),4)
corrplot::corrplot(cor,method = 'square', order = 'FPC', type = 'lower', diag = FALSE)

Ahora analizando la matriz de la región norte vemos que los resultados son bastante similares. Esto nos deja dicho que no se encuentra una diferencia significativa en cuanto a la correlación de las variables en la región norte.

# CORRELATION PLOT DEL NORTE 
cor_norte <- hNorte[,unlist(lapply(hNorte, is.numeric))]
cor_norte <- model.matrix(~0+., data=cor_norte) 
cor_norte <- round(cor(cor_norte),4)
corrplot::corrplot(cor_norte,method = 'square', order = 'FPC', type = 'lower', diag = FALSE)

Distribución Covid 2021

Como primer gráfico tenemos un treemap con los casos de covid de la república mexicana. El gráfico se compone por subgrupos (regiones, entidades de cada región y los municipios de cada entidad). El tamaño de cada cuadro representa la cantidad de casos de covid (región, entidad y municipio). Esto nos proporciona un panorama general sobre la distibución de casos confirmados de covid en 2021.

covid_hospital$Region <- as.factor(covid_hospital$Region)
covid_hospital$entidad <- as.factor(covid_hospital$entidad)
covid_hospital$mpio <- as.factor(covid_hospital$mpio)
t <- treemap::treemap(covid_hospital,
            # data
            index=c("Region","entidad","mpio"),
            vSize="Covid_2021",
            type="index",
        
            # Main
            title="Distribución de Covid 2021",
            palette="Set3",
            mapping=NA,

            # Borders:
            border.col=c("black"),             
            border.lwds=1,                         
        
            # Labels
            fontsize.labels=10,
            fontcolor.labels="black",
            fontface.labels=1,            
            #bg.labels=c("transparent"),              
            align.labels=c("left", "top"),                                  
            overlap.labels=0.5,
            inflate.labels=T)

De manera más visual, realizamos el treemap de forma interactiva de manera que nos muestra la distribución de casos por covid por regiones, basándonos en el tamaño de los recuadros, entre mayor sea mayor distribución. En este caso vemos que la region centro es la que mayor casos tiene confirmados, después la region centro norte, sur y por último norte. De igual manera, se puede observar más a detalle por recuadro a nivel municipal.

# DISTRIBUCION COVID 2021 (INTERACTIVO)
#devtools::install_github("timelyportfolio/d3treeR")
d3treeR::d3tree2(t ,  rootname = "General" )

Pobreza

Entrando más a detalle en el análisis de las variables, tenemos este histograma que nos muestra el porcentaje de la población en situación de pobreza haciendo una comparativa a nivel Nacional y Regional. Podemos observar que si existe un porcentaje alto de personas en situacion de pobreza.

# porcentaje de la poblacion en situación de pobreza Nacional y Región Norte
a <- ggplot(covid_hospital,aes(porcentaje_pob_pobreza)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
  labs(subtitle="Nacional")  +xlab("porcentaje")+ylab("") 
b <- ggplot(hNorte,aes(porcentaje_pob_pobreza)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
  labs(subtitle="Región Norte")  +xlab("porcentaje")+ylab("") 
cowplot::plot_grid(a,b, ncol = 2)

Pobreza extrema

Continuando con el análisis de la pobreza, tenemos este comparativo de pobreza extrema a nivel Nacional y Región Norte. Vemos que existe un porcentaje poco significativo de población en situaciones de pobreza extrema en méxico.

# porcentaje de la poblacion en situacion de pobreza extrema Nacional y Región Norte
a <- ggplot(covid_hospital,aes(porcentaje_pob_pobreza_ext)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
  labs(subtitle="Nacional")  +xlab("porcentaje")+ylab("") 
b <- ggplot(hNorte,aes(porcentaje_pob_pobreza_ext)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
  labs(subtitle="Región Norte")  +xlab("porcentaje")+ylab("") 
cowplot::plot_grid(a,b, ncol = 2)

Servicios de seguridad social

Ahora, observando el porcentaje de población que carce de servicios de seguridad social a nivel Nacional y Región Norte tenemos que si existe un porcentaje significativo de personas que carecen de seguridad social, siendo un punto importante de interés para el análisis de casos de covid.

# porcentaje de la poblacion que carece de servicos de seguridad social Naional y Región Norte
a <- ggplot(covid_hospital,aes(porcentaje_pob_acceso_ss)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
  labs(subtitle="Nacional")  +xlab("porcentaje")+ylab("") 
b <- ggplot(hNorte,aes(porcentaje_pob_acceso_ss)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
  labs(subtitle="Región Norte")  +xlab("porcentaje")+ylab("") 
cowplot::plot_grid(a,b, ncol = 2)

Con los siguientes histogramas, podemos observar el comportamiento del covid durante el 2021 a nivel nacional y podemos ver que la densidad se mantiene alta, dando a entender que los casos de covid siempre estuvieron en constante crecimiento.

# covid qq 2021
aa <- ggplot(covid_hospital, aes(x=Covid_Q1_2021)) + geom_histogram(colour="black", fill="plum")+geom_density(alpha=.2, fill="#8B668B") + labs(title="Covid Q1 2021",x=" ") + theme_light()

bb <- ggplot(covid_hospital, aes(x=Covid_Q2_2021)) + geom_histogram(colour="black", fill="plum1")+geom_density(alpha=.2, fill="#8B668B") +labs(title="Covid Q2 2021",x=" ") +theme_light()

cc <- ggplot(covid_hospital, aes(x=Covid_Q3_2021)) + geom_histogram(colour="black", fill="plum3")+geom_density(alpha=.2, fill="#8B668B") +labs(title="Covid Q3 2021",x=" ") +theme_light()

dd <- ggplot(covid_hospital, aes(x=Covid_Q4_2021)) + geom_histogram(colour="black", fill="plum4")+geom_density(alpha=.2, fill="#8B668B") +labs(title="Covid Q4 2021",x=" ") +theme_light()

cowplot::plot_grid(aa, bb, cc, dd, ncol = 2)

Con los siguientes histogramas, podemos observar el comportamiento del covid durante el 2021 a nivel región norte y podemos ver que la densidad se mantiene alta, dando a entender que los casos de covid siempre estuvieron en constante crecimiento.

# covid qq 2021 Regional
aaaa <- ggplot(hNorte, aes(x=Covid_Q1_2021)) + geom_histogram(colour="black", fill="plum")+geom_density(alpha=.2, fill="#8B668B") + labs(title="Covid Q1 2021",x=" ") + theme_light()

bbbb <- ggplot(hNorte, aes(x=Covid_Q2_2021)) + geom_histogram(colour="black", fill="plum1")+geom_density(alpha=.2, fill="#8B668B") +labs(title="Covid Q2 2021",x=" ") +theme_light()

cccc <- ggplot(hNorte, aes(x=Covid_Q3_2021)) + geom_histogram(colour="black", fill="plum3")+geom_density(alpha=.2, fill="#8B668B") +labs(title="Covid Q3 2021",x=" ") +theme_light()

dddd <- ggplot(hNorte, aes(x=Covid_Q4_2021)) + geom_histogram(colour="black", fill="plum4")+geom_density(alpha=.2, fill="#8B668B") +labs(title="Covid Q4 2021",x=" ") +theme_light()

cowplot::plot_grid(aaaa, bbbb, cccc, dddd, ncol = 2)

Siguiendo con el análisis, ahora podemos ver por regiones de mayor a menor quienes tuvieron la mayor cantidad de casos de covid confirmados. Tenemos la región centro como la región con mayor cantidad de casos covid confirmados, siguiendo la región centro norte, norte y por último sur.

# casos covid 2021 nacional
aa <- ggplot(covid_hospital, aes(x=Region,y=Covid_2021, fill=Region)) +
  geom_col(width = 1.5) +
  theme_light() +
  labs(title="Casos covid a nivel nacional",
       x=" ", y="Región:Norte") +
  theme(panel.spacing = unit(0.1, "lines"),
         axis.ticks.y=element_blank(),
         axis.text.y=element_blank(),
         axis.ticks.x=element_blank(),
         axis.text.x=element_blank()) +
  scale_fill_brewer(palette="OrRd") 
plotly::ggplotly(aa)

Ahora, observado los casos de covid por las entidades de la región norte, tenemos que la entidad con más casos de covid confirmados es la entidad de Nuevo León, siguiendo Sonora, Tamaulipas, Baja California, Coahuila y por último Chihuahua.

# casos covid 2021 region norte
aa <- ggplot(hNorte, aes(x=entidad,y=Covid_2021, fill=entidad)) +
  geom_col(width = 1.5) +
  theme_light() +
  labs(title="Casos covid región norte",
       x=" ", y="Región:Norte") +
  theme(panel.spacing = unit(0.1, "lines"),
         axis.ticks.y=element_blank(),
         axis.text.y=element_blank(),
         axis.ticks.x=element_blank(),
         axis.text.x=element_blank()) +
  scale_fill_brewer(palette="OrRd") 
plotly::ggplotly(aa)

Dispersión

QQ plots: Mexico y Region Centro norte

Aqui podemos ver un comparativo de la distribución de los datos de covid para méxico y para la región norte. La línea diagonal que se encuentra en el gráfico representa la distribución normal, en este caso vemos que la distribución se encuentra baja para ambos casos. Vemos que los puntos de ambas gráficas se encuentran bastante cerca de la línea hasta que en un punto al final se desvían. En otras palabras, esto significa que el segundo conjunto de datos tiene colas más pesadas (distribución con colas más anchas) que el primer conjunto de datos.

Ahora, comparando los qq plots de covid en el 2021 golbal y regional tenemos que los casos de covid confirmados van en aumento.

x <- ggplot(covid_hospital,aes(sample=Covid_2021))  + 
  geom_qq(fill="black",color="#8B668B") + 
  geom_qq_line() +
  theme_light() +
  labs(title="Nacional", y="", x="Theoretical Quantiles")

y <- ggplot(hNorte,aes(sample=Covid_2021))  + 
  geom_qq(fill="black",color="#8B7B8B") + 
  geom_qq_line() +
  theme_light() +
  labs(title="Región Norte", y=" ", x="Theoretical Quantiles")
cowplot::plot_grid(x,y, ncol = 2)

Scatter plot: Mexico y Region Centro norte

Se ha mostrado que existe una correlación entre la población y los casos confirmados de covid. Para poder visualizar y entender mejor el efecto que tiene una a la otra, se creó este scatterplot donde buscamos ver la relación de estas dos variables junto una línea de tendencia creada utilizando una regresión lineal de estos datos.

Aquí podemos ver que si existe una relación positiva para ambos gráficos. Esto quiere decir que mientras más crece la población, mayor casos de covid confirmados hay. Con este insight se estará viendo más adelante cómo esto afecta de manera espacial, pero hasta el momento podemos confirmar la relación positiva y el impacto creciente que este le espera tanto para México como para la región norte.

# EFECTO COVID 2O21 EN POBLACION 2022 RN
## SCATTERPLOT + REGRESION LINEAL 
A <-ggplot(covid_hospital, aes(x=poblacion_2022, y=Covid_2021)) + 
  geom_point(color="#34A0A4", alpha=0.8) +
  theme_light() +
    theme(plot.title = element_text(size=12)) +
  geom_smooth(method='lm', color="black", alpha=0.8, size=0.5, fill="skyblue")  +    #regression line
  labs(title="Nacional",x=" Población", y="Casos Covid") 

B <-ggplot(hNorte, aes(x=poblacion_2022, y=Covid_2021)) + 
  geom_point(color="#184E77", alpha=0.8) +
  theme_light() +
    theme(plot.title = element_text(size=12)) +
  geom_smooth(method='lm', color="black", alpha=0.8, size=0.5, fill="skyblue")  +    #regression line
  labs(title="Región Norte",x=" Población", y=" ") 

cowplot::plot_grid(A,B, ncol = 2)

Density plot: México y Region Centro norte

A continuación, vemos la distribución normal de la variable “rezago social” a nivel nacional y regional. La media a nivel nacional es de -0.0019 y la media a nivel regional es de -0.6174. Bajo los parametros de la variable, se estableció que el rango de -0.71 a 0.13 representan un nivel de rezago bajo, indicando que ambos sectores entran en esta categoría.

summary(covid_hospital$rezago_social)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max.      NA's 
## -1.550000 -0.760000 -0.220000 -0.001486  0.470000  6.830000        11
summary(hNorte$rezago_social)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -1.5100 -1.1200 -0.9000 -0.6174 -0.5000  6.8300       1
A <- ggplot(covid_hospital, aes(x=rezago_social)) +
    geom_density(fill="#81C58F", color="#e9ecef", alpha=0.7, bw=.5) +
    geom_vline(aes(xintercept=mean(rezago_social)),color="azure4", linetype="dashed", size=1) + 
    ggtitle("Rezago Económico Mexico") + 
    scale_x_continuous(limits = c(-5, 7)) + 
    labs(title="Rezago Económico Mexico",x=" rezago social", y="density")+
    theme_light()

B <- ggplot(hNorte, aes(x=rezago_social)) +
    geom_density(fill="#69b3a2", color="#e9ecef", alpha=0.7, bw=1) +
    scale_x_continuous(limits = c(-5, 7)) + 
    labs(title="Rezago Económico Región Norte",x="rezago social", y=" ") +
    theme_light()
cowplot::plot_grid(A,B, ncol = 2)

Distribución

# CARGA DE DATOS 
setwd("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1") 
map_sf <- sf::read_sf("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/cvd/cvd_shp/mx_mpios_data.shp")
#covid_hospital <- rename(covid_hospital,IDUNICO=cve_ent)
#map_datab<-right_join(map_sf,covid_hospital,by="IDUNICO")

map_databN<-map_sf %>% 
  dplyr::filter(entidad %in% c("Baja California", "Chihuahua", "Coahuila", "Nuevo Leon", "Sonora", "Tamaulipas"))
# CARGA DE DATOS 
map_poly<-readShapePoly("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/mx_mpios.shp",IDvar="IDUNICO",proj4string=CRS("+proj=longlat"))
map.centroid<-coordinates(map_poly)
map.link<-poly2nb(map_poly,queen=T)              
map.linkW<-nb2listw(map.link, style="W")

Distribución espacial 1

Siguiendo el ESDA, visualizamos la distribución espacial de los datos a nivel municipal utilizando la principal variable de interés (casos de covid confirmados). Aquí podemos ver que mientras mayor sean los casos confirmados estos tendrán un tono azul claro y menos más oscuro. Aunque no se distingue muy bien por la gran cantidad de municipios se puede resaltar que los municipios céntricos son los que cuentan con una tasa de casos de covid confirmados.

# MAPA GENERAL - Covid
ggplot(map_sf) +
  geom_sf(color = "white", aes(fill = Covid),linetype=0.75,lwd=0.25) +
  ggtitle(label="Distribución Espacial Covid", subtitle=" Nivel Municipio") +
  theme_light() + theme(legend.position="bottom")

Distribución espacial 2

En este mapa podemos observar la distribución espacial de la pobreza en méxico. Vemos que en las regiones del centro y sur es donde mayormente se localiza el mayor porcentaje de la población en méxico en situación de pobreza, siendo este un factor relevante a la hora de analizar los casos de covid 19.

# MAPA GENERAL - pobreza
ggplot(map_sf) +
  geom_sf(color = "white", aes(fill = Pobreza),linetype=0.75,lwd=0.25) +
  ggtitle(label="Distribución Espacial", subtitle="Pobreza en Mexico") +
  theme_light() + theme(legend.position="bottom")

Continuando con el análisis a más detalle, tenemos esta mapa que muestra a nivel municipal de toda la región norte el nivel de pobreza y tenemos que en la región norte, las áreas por encima de 0.50 tienen una mayor proporción de población viviendo en pobreza, mientras que las áreas por debajo de 0.50 tienen una menor proporción.

# MAPA POR REGIÓN NORTE - pobreza
ggplot(data=map_databN) +
  geom_sf(color = "white", aes(fill = Pobreza),linetype=0.75,lwd=0.25) +
  theme_light()+
  ggtitle(label="Distribución Espacial Región Norte", subtitle="Pobreza") +
  theme(legend.position="bottom")

Distribución espacial por Región

Después, tenemos este mapa que muestra la distribución espacial a nivel regional, viendo claramente las divisiones de Centro, Norte, Centro Norte y sur.

# MAPA POR REGIÓN
colores <- colorRampPalette(c("#D9ED92","#99D98C","#52B69A","#1A759F","#184E77"))(5)
ggplot(data=map_sf) +
  geom_sf(aes(fill=Region), color=NA, linetype=0.75,lwd=0.25) +
  theme_light()+ scale_fill_manual(values=colores) +
  ggtitle(label="Distribución Espacial por región", subtitle="Nivel Regional") + theme(legend.position="bottom")

Distribución Espacial Región Norte

De igua manera, realizamos otro mapa que muestra la distrución de casos por covid confirmados en las entidades de la region norte, que son Baja California, Chihuahua, Coahuila, Nuevo León, Sonora y Tamaulipas.

# MAPA POR REGIÓN NORTE- ENTIDADES
colores <- colorRampPalette(c("#D9ED92","#B5E48C","#99D98C","#76C893","#34A0A4","#184E77"))(6)
ggplot(data=map_databN) +
  geom_sf(aes(fill=entidad), color=NA, linetype=0.75,lwd=0.25) +
  theme_light()+  scale_fill_manual(values=colores) +
  ggtitle(label="Distribución Espacial Región Norte")

Ahora, analizando un poco más a detalle, a continuación, tenemos un mapa que muestra a nivel municipal de toda la región norte los casos confirnados por covid. Vemos que en la región norte es donde más se localizan los casos confirmados por covid 19.

# MAPA POR REGIÓN NORTE - COVID
ggplot(data=map_databN) +
  geom_sf(color = "white", aes(fill = Covid),linetype=0.75,lwd=0.25) +
  theme_light()+
  ggtitle(label="Distribución Espacial Región Norte", subtitle="Covid") + theme(legend.position="bottom")

Matríz de conectividad

Una matriz de conectividad es utilizada para medir la proximidad espacial entre unidades geográficas, en este caso lo vemos a nivel municipal. Con esto se busca mostrar la conexión o la distancia entre las unidades geográficas e identificar los patrones de conectividad y comprender cómo se relacionan las unidades espaciales entre sí.

# MAPA de connectividad
plot(map_poly,border="orangered3",axes=FALSE,las=1)
plot(map_poly,col="grey",border=grey(0.9),axes=T,add=T) 
plot(map.linkW,coords=map.centroid,pch=19,cex=0.1,col="orangered3",add=T)
title("Spatial Connectivity Matrix")

Evaluación

Autocorrelación espacial Nacional

Se realizó una simulación monte carlo para detectar la presencia de autocorrelación espacial y tenemos que:
  • para covid, hay una fuerte evidencia de autocorrelación espacial positiva en los datos
  • para poblacion, hay una fuerte evidencia de autocorrelación espacial positiva en los datos
  • para densidad, hay una fuerte evidencia de autocorrelación espacial positiva en los datos
  • para pobreza, hay una fuerte evidencia de autocorrelación espacial positiva en los datos
  • para la poblacion con acceso a servicios de salud, hay una fuerte evidencia de autocorrelación espacial positiva en los datos
moran.mc(map_sf$Covid, map.linkW, nsim=9999) #covid
## 
##  Monte-Carlo simulation of Moran I
## 
## data:  map_sf$Covid 
## weights: map.linkW  
## number of simulations + 1: 10000 
## 
## statistic = 0.29205, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
moran.mc(map_sf$Poblacion, map.linkW, nsim=9999) #poblacion
## 
##  Monte-Carlo simulation of Moran I
## 
## data:  map_sf$Poblacion 
## weights: map.linkW  
## number of simulations + 1: 10000 
## 
## statistic = 0.094651, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
moran.mc(map_sf$Densidad20, map.linkW, nsim=9999) #densidad
## 
##  Monte-Carlo simulation of Moran I
## 
## data:  map_sf$Densidad20 
## weights: map.linkW  
## number of simulations + 1: 10000 
## 
## statistic = 0.26973, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
moran.mc(map_sf$Pobreza, map.linkW, nsim=9999) #pobreza
## 
##  Monte-Carlo simulation of Moran I
## 
## data:  map_sf$Pobreza 
## weights: map.linkW  
## number of simulations + 1: 10000 
## 
## statistic = 0.33665, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
moran.mc(map_sf$Acceso_SS, map.linkW, nsim=9999) #carece a servicios de seguridad social
## 
##  Monte-Carlo simulation of Moran I
## 
## data:  map_sf$Acceso_SS 
## weights: map.linkW  
## number of simulations + 1: 10000 
## 
## statistic = 0.13847, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater

Clusters

Clústers México

Los clusters geoespaciales utilizan técnicas estadísticas para agrupar los municipios de esta región en grupos o categorías con base en sus características comunes. A continuación la interpretación general de los clusters:

  • High-High: áreas con alta concentración de valores altos para la variable de interés y que están rodeadas por áreas similares.
  • Low-Low: áreas con baja concentración de valores bajos para la variable de interés y que están rodeadas por áreas similares.
  • High-Low: áreas con alta concentración de valores altos para la variable de interés y que están rodeadas por áreas con valores bajos.
  • Low-High: áreas con baja concentración de valores bajos para la variable de interés y que están rodeadas por áreas con valores altos.
  • Not significant: áreas donde no se presenta una asociación espacial significativa con respecto a la variable de interés.
# Datos
map_mpios_mx<-map_sf
queen_w <- rgeoda::queen_weights(map_mpios_mx)

# trnaformación
lisa_covid2021<-local_moran(queen_w, map_mpios_mx["Covid"]) 
map_mpios_mx$cluster_covid2021<-as.factor(lisa_covid2021$GetClusterIndicators())
levels(map_mpios_mx$cluster_covid2021)<-lisa_covid2021$GetLabels()   ### clusters for covid19 cases in 2021

# Mapa 
ggplot(data=map_mpios_mx) + 
  geom_sf(aes(fill=cluster_covid2021)) + 
  ggtitle(label="Clusters COVID 19 en México", subtitle="Casos Confirmados")

Clústers Región Norte

# Datos
map_mpios_mxN<-map_databN
queen_y <- rgeoda::queen_weights(map_mpios_mxN)

# trnaformación
lisa_covid2021<-local_moran(queen_y, map_mpios_mxN["Covid"]) 
map_mpios_mxN$cluster_covid2021<-as.factor(lisa_covid2021$GetClusterIndicators())
levels(map_mpios_mxN$cluster_covid2021)<-lisa_covid2021$GetLabels()   ### clusters for covid19 cases in 2021

# Mapa 
ggplot(data=map_mpios_mxN) + 
  geom_sf(aes(fill=cluster_covid2021)) + 
  ggtitle(label="COVID 19 Region Norte", subtitle="Casos Confirmados")

Hallazgos

  • Se realiza un análisis descriptivo de una base de datos relacionada con el COVID-19 en México, enfocándose en la región norte del país y se utilizan diferentes técnicas estadísticas como la matriz de correlación, histogramas, QQ plots y scatter plots para identificar patrones y relaciones entre las variables.
  • Gracias a la simulación monte carlo para detectar la presencia de autocorrelación espacial de las variables de interés, esta sugiere que hay una fuerte evidencia de autocorrelación espacial positiva en los datos.
  • Resultado de los clusters tanto a nivel nacional como a nivel region norte tenemos que la mayoría sale como no significante, esto quiere decir que no se ha encontrado evidencia estadística suficiente para clasificar los datos de la region norte. Esto en algunas ocasiones se debe a la falta de variabilidad en los datos o a la presencia de valores extremos que dificultan la identificación de patrones espaciales significativos.
  • En en análisis de pobreza, tenemos que, las áreas por encima de 0.50 tienen una mayor proporción de población viviendo en pobreza, mientras que las áreas por debajo de 0.50 tienen una menor proporción. Existe un porcentaje alto de personas en situación de pobreza a nivel nacional y regional, aunque el porcentaje de personas en situación de pobreza extrema es poco significativo en México. Además, un porcentaje significativo de personas carece de servicios de seguridad social.
  • Se encontró una relación directa entre la densidad poblacional y el Covid. Con esto en mente y teniendo en cuenta las entidades que mostraron ser estadísticamente significativas podemos hacer la relación geoespacial de las mismas. Las entidades significativas son entidades que cuentan con una gran densidad poblacional como CDMX y Estado de México o son entidades con gran turismo como Quintana Roo y Baja California Sur. Con esta relación podemos concluir que la propagación de Covid se dio mucho debido a las entidades con mucho turismo y con gran densidad poblacional.
  • La región norte tiene una conectividad menos abundante que el resto de las regiones. La autocorrelación positiva sugiere patrones similares de conectividad en áreas cercanas, lo que puede indicar tendencias en la planificación de infraestructura que afectan la movilidad, acceso a servicios y desarrollo económico en áreas cercanas.
  • Gracias a este tipo de análisis fue posible identificar patrones espaciales y tendencias que no son visibles a simple vista y se detectó una autocorrelación espacial positiva.
  • Se observa una constante alta densidad en los casos de COVID-19 durante el año 2021, tanto a nivel nacional como en la región norte y se concluye que la distribución de los datos de COVID-19 en México y la región centro norte no sigue una distribución normal, y que los casos de COVID-19 confirmados han ido en aumento.

Conclusión

Según el análisis ESDA presentado, se puede concluir que la región norte de México no presenta una diferencia significativa en cuanto a la correlación de variables con respecto a la totalidad de México. Además, se destaca que hay una correlación positiva entre la variable de interés (Covid) y variables como población, centros médicos, inclusión financiera y densidad, y una correlación negativa con variables como rezago social, pobreza y acceso a servicios de salud.

La region norte tiene oportunidades de mejora ya que es de las regiones con mayor casos confirmados por covid 19. Además, las regiones centro y sur es donde mayormente se localiza un alto porcentaje de la población en méxico en situación de pobreza, siendo este un factor relevante a la hora de analizar los casos de covid 19 y el porcentaje de la población que cuenta con acceso a servicios de salud, además de ser una gran área de oportunidad para dichas regiones relacionado con el área de salud. Para la región norte, vemos que si existe un porcentaje de pobreza pero no tan alto como el de otras regiones.

Los principales factores socioeconómicos que caracterizan los clústers de casos confirmados de COVID-19 son la densidad poblacional, la cantidad de centros médicos y las variables socioeconómicas relevantes de cada entidad. En el análisis se encontró que ciertas variables socioeconómicas como la densidad poblacional, la cantidad de centros médicos, la inclusión financiera y la ubicación geográfica se correlacionaron significativamente con la propagación del COVID-19. La densidad poblacional y las variables socioeconómicas también pueden contribuir al crecimiento y expansión de organizaciones relacionadas con la prestación de servicios de salud. Por lo tanto, se recomienda que las organizaciones consideren estos factores al planificar la expansión y establecimiento de servicios de salud en diferentes regiones.